package dao

import (
	"database/sql"
	"fmt"
	_ "github.com/go-sql-driver/mysql"
	"haiqiu-go-admin/config"
	"log"
	"net/url"
	"time"
)

var DB *sql.DB

func init() {
	dataSourceUrl := fmt.Sprintf("%v", config.AppConfig.Mysql.Url)
	dataSourceName := fmt.Sprintf(dataSourceUrl, url.QueryEscape("Asia/Shanghai"))
	db, err := sql.Open("mysql", fmt.Sprintf("%v", dataSourceName))
	if err != nil {
		log.Println("数据库连接异常：" + dataSourceName)
		panic(err)
	}
	//最大空闲连接数，默认不配置，是2个最大空闲连接
	db.SetMaxIdleConns(5)
	//最大连接数，默认不配置，是不限制最大连接数
	db.SetMaxOpenConns(100)
	// 连接最大存活时间
	db.SetConnMaxLifetime(time.Minute * 3)
	//空闲连接最大存活时间
	db.SetConnMaxIdleTime(time.Minute * 1)
	err = db.Ping()
	if err != nil {
		log.Print("数据库无法连接")
		_ = db.Close()
		panic(err)
	}
	DB = db
}

// 初始化系统sql库
//func initData() {
//	log.Println("检测数据库..............")
//	var dataName = ""
//	err := DB.QueryRow("SHOW DATABASES LIKE 'haiqiu_admin';").Scan(&dataName)
//	if err != nil {
//		log.Println(err.Error())
//		panic(err)
//	}
//	if dataName == "" {
//		log.Println("数据库不存在，正在创建.........")
//		_, err := DB.Exec("CREATE DATABASE haiqiu_admin")
//		if err != nil {
//			log.Println(err.Error())
//			panic(err)
//		}
//	} else {
//		log.Println("数据库已存在.............")
//	}
//	log.Println("检测数据库完成.............")
//}
